#pragma once

#include "Ogre.h"

using namespace Ogre;

class Player :
 public FrameListener
{
protected:
	Player();
	~Player();
	
	SceneManager *mSceneMgr;
	RaySceneQuery *mRaySceneQry;
	
	SceneNode *MainNode; //the two nodes we have
	SceneNode *EyeNode;
	
	InputHandler *Input; //and a reference to the InputHandler declared on the EngineManager
	
	Simulation *Sim;

	Vector3 MoveVector;
	
	float MOVE_SPEED;
	bool NOCLIP;
    float mToggleNoclip;

public:
	//singleton access
	static Player &Instance()
	{
		static Player instance;
		return instance;
	}
	
	bool Startup(SceneManager *sceneMgr, InputHandler *input, Simulation *sim);
	void Shutdown();

	void InjectMouse(OIS::MouseButtonID btn, bool Pressed);
	bool frameStarted(const FrameEvent &evt);
};